package edu.maplef.bookwild.dao;

import java.util.List;

public interface IBaseDao<T> {

	/**
	 * 保存对象T
	 * @return 若保存成功，返回保存对象的主键;异常返回空
	 */
	public String save(T t) throws Exception;

	/**
	 * 根据ID删除对象
	 * @param id
	 * @return
	 */
	public boolean removeById(String id);

	/**
	 * 根据主键Id查找
	 *
	 * @param  id 需要查找的主键Id
	 * @return 返回对应的对象。
	 * @throws Exception
	 */
	public T getById(String id) throws Exception;

	/**
	 * 根据主键数组删除对应记录
	 *
	 * @param  ids 主键。
	 * @return 删除成功的条数。
	 * @throws Exception
	 */
	public int removeByIds(String[] ids) throws Exception;

	/**
	 * 根据主键数组查找对应记录。
	 *
	 * @param  ids 主键。
	 * @return 符合条件的条数。
	 * @throws Exception
	 */
	public List<T> getByIds(String[] ids) throws Exception;

	/**
	 * 查询数据表中所有记录
	 * @return 数据表中所有记录
	 * @throws Exception
	 */
	public List<T> list() throws Exception;

}